ADDLW : ( ADD Litéral and W )
Additionner le registre W et une valeur immédiate , la somme est stockée en W
( la série PIC 16C5x ne comprend pas cette instruction)
( W ) + v -> ( W )
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
C si retenue ( C=1 )
DC si la somme des quatre bits de poids faible est > 15 ( DC=1 )
Z si la somme est nulle ( Z=1 )
Syntaxe :
Addlw 0x0F W + Ox0F le résultat est stocké dans W
ADDWF : ( ADD W and F )
Additionner le registre W et ( f ) , la somme est stockée en ( d )
( W ) + ( f ) -> ( d )
f est l'emplacement mémoire d 'un registre
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
C si retenue ( C=1 )
DC si la somme des quatre bits de poids faible est > 15 ( DC=1 )
Z si la somme est nulle ( Z=1 )
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f
Exemple :
#define W 0 on affecte 0 à la variable W utilisée ci - après
Movf valeur1, W on met la valeur 1 dans le registre W
Addwf valeur2, W valeur 1 + valeur 2 stocké dans W
ANDLW : ( AND Litéral with W )
Opération " ET " entre le contenu du registre W et une constante c
( W ) AND c -> ( W )
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z si le résultat stocké dans W est nul ( Z=1 )
Exemple :
Port_A equ 05h on affecte 05 à la variable Port_A utilisée ci - après
#define W 0 on affecte 0 à la variable W utilisée ci - après
Movf Port_A, W on met le contenu du port A dans le registre W
Andlw 55h on masque un bit sur 2 ( 55 h = 0101 0101 )
ANDWF : ( AND W with F )
Opération " ET " entre le contenu du registre W et f le résultat est en d
( W ) AND ( f ) -> ( d )
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z si le résultat stocké dans W ou f est nul ( Z=1 )
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f
Exemple :
R_etat equ 03h on affecte 03 à la variable R_etat utilisée ci - après
Movlw 00000111b on met le contenu 00000111 dans le registre W
Andwf R_etat, F on masque et on configure le registre d' état